/**
  ******************************************************************************
  * @file    hongjia_ble.h
  * @author  ashuai0110
  * @version V2.3
  * @date    2024-07-01
  * @brief   宏佳电子HJ-131蓝牙模组指令集
  *
  ******************************************************************************
  * @attention
  *
  * 版权声明:内容为编者(ashuai0110)原创,使用请注明出处,当然,你也可以不这样做^_^
  * 出处链接:https://gitee.com/ashuai0110/mcu_reuse_development_module.git
  *
  ******************************************************************************
  */

#ifndef __HONGJIA_BLE_H
#define __HONGJIA_BLE_H

#ifdef __cplusplus
extern "C" {
#endif

/* 包含头文件-----------------------------------------------------------------*/

/**
 * @addtogroup devices
 * @{
 */

/**
 * @defgroup hongjia_ble hongjia_ble
 * @{
 */

/* 宏定义---------------------------------------------------------------------*/
/**
 * @defgroup hongjia_ble_global_macros hongjia ble global macros
 * @{
 */

#define HJ_BLE_AT_CMD_HEAD              "<" /* AT指令帧头 */
#define HJ_BLE_AT_CMD_TAIL              ">" /* AT指令帧尾 */

/* 设置/读取蓝牙英文名称 */
#define HJ_BLE_ST_NAME                  "<ST_NAME=%s>" /*!< 设置蓝牙英文名称 */
#define HJ_BLE_RD_NAME                  "<RD_NAME>"    /*!< 读取蓝牙英文名称 */
#define HJ_BLE_ST_NAME_RET              "<st_name=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_NAME_RET              "<rd_name=xx>" /*!< 读取成功的应答 */
/* 广播开启与停止/查询 */
#define HJ_BLE_ST_ADV_ONOFF             "<ST_ADV_ONOFF=%d>" /*!< 开关广播 1:开启 0:关闭 */
#define HJ_BLE_RD_ADV_ONOFF             "<RD_ADV_ONOFF>"    /*!< 查询广播状态 */
#define HJ_BLE_ST_ADV_ONOFF_RET         "<st_adv_onoff=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_ADV_ONOFF_RET         "<rd_adv_onoff=x>"  /*!< 查询成功的应答 同上 */
/* 设置/读取广播数据 */
#define HJ_BLE_ST_ADV_DATA              "<ST_ADV_DATA=%s>" /*!< 设置广播数据 "1234"表示广播0x12 0x34 */
#define HJ_BLE_RD_ADV_DATA              "<RD_ADV_DATA>"    /*!< 读取广播数据 */
#define HJ_BLE_ST_ADV_DATA_RET          "<st_adv_data=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_ADV_DATA_RET          "<rd_adv_data=xx>" /*!< 读取成功的应答 同上 */
/* 设置/读取广播间隙 */
#define HJ_BLE_ST_ADV_GAP               "<ST_ADV_GAP=%d>" /*!< 设置广播间隙 20~10000对应20ms~10s */
#define HJ_BLE_RD_ADV_GAP               "<RD_ADV_GAP>"    /*!< 读取广播间隙 */
#define HJ_BLE_ST_ADV_GAP_RET           "<st_adv_gap=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_ADV_GAP_RET           "<rd_adv_gap=xx>" /*!< 读取成功的应答 同上 */
/* 主动断开连接/读取当前连接状态 */
#define HJ_BLE_ST_DIS_LINK              "<ST_DISCONNECT_LINK>"    /*!< 主动断开连接 */
#define HJ_BLE_RD_LINK                  "<RD_LINK>"               /*!< 读取当前连接状态 */
#define HJ_BLE_ST_DIS_LINK_RET          "<st_disconnect_link=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_LINK_RET              "<rd_link=x>"             /*!< 读取成功的应答 x:"1"正常连接 "0"断开连接 */
/* 设置/读取模组发射功率 */
#define HJ_BLE_ST_TX_POWER              "<ST_TX_POWER=%s>" /*!< 设置发射功率dBm "-19.5" "-13.5" "-10" "-7" "-5" "-3.5" "-2" "-1" "0" "+1" "+1.5" "+2.5" */
#define HJ_BLE_RD_TX_POWER              "<RD_TX_POWER>"    /*!< 读取发射功率 */
#define HJ_BLE_ST_TX_POWER_RET          "<st_tx_power=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_TX_POWER_RET          "<rd_tx_power=xx>" /*!< 读取成功的应答 同上 */
/* 蓝牙复位指令 */
#define HJ_BLE_ST_RESET_BLE             "<ST_RESET_BLE=>"   /*!< 设置蓝牙复位 模组反馈成功后,将在500ms后复位 */
#define HJ_BLE_ST_RESET_BLE_RET         "<st_reset_ble=ok>" /*!< 设置成功的应答 */
/* 设置/读取串口波特率 */
#define HJ_BLE_ST_BAUD                  "<ST_BAUD=%d>" /*!< 设置串口波特率bps 1200 2400 4800 9600 14400 19200 ... 57600 115200 ... 1000000 */
#define HJ_BLE_RD_BAUD                  "<RD_BAUD>"    /*!< 读取串口波特率 */
#define HJ_BLE_ST_BAUD_RET              "<st_baud=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_BAUD_RET              "<rd_baud=xx>" /*!< 读取成功的应答 同上 */
/* 设置/读取从机最小连接间隙 */
#define HJ_BLE_ST_CON_MIN_GAP           "<ST_CON_MIN_GAP=%d>" /*!< 设置从机最小连接间隙 75~40000对应7.5ms~4s */
#define HJ_BLE_RD_CON_MIN_GAP           "<RD_CON_MIN_GAP>"    /*!< 读取从机最小连接间隙 */
#define HJ_BLE_ST_CON_MIN_GAP_RET       "<st_con_min_gap=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_CON_MIN_GAP_RET       "<rd_con_min_gap=xx>" /*!< 读取成功的应答 同上 */
/* 设置/读取从机最大连接间隙 */
#define HJ_BLE_ST_CON_MAX_GAP           "<ST_CON_MAX_GAP=%d>" /*!< 设置从机最大连接间隙 75~40000对应7.5ms~4s */
#define HJ_BLE_RD_CON_MAX_GAP           "<RD_CON_MAX_GAP>"    /*!< 读取从机最大连接间隙 */
#define HJ_BLE_ST_CON_MAX_GAP_RET       "<st_con_max_gap=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_CON_MAX_GAP_RET       "<rd_con_max_gap=xx>" /*!< 读取成功的应答 同上 */
/* 设置/读取从机连接超时时间 */
#define HJ_BLE_ST_CON_TIMEOUT           "<ST_CON_TIMEOUT=%d>" /*!< 设置从机连接超时时间 500~8000对应500ms~8s */
#define HJ_BLE_RD_CON_TIMEOUT           "<RD_CON_TIMEOUT>"    /*!< 读取从机连接超时时间 */
#define HJ_BLE_ST_CON_TIMEOUT_RET       "<st_con_timeout=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_CON_TIMEOUT_RET       "<rd_con_timeout=xx>" /*!< 读取成功的应答 同上 */
/* 查询本机的BLE模组的MAC地址 */
#define HJ_BLE_RD_BLE_MAC               "<RD_BLE_MAC>"    /*!< 读取本机MAC地址 */
#define HJ_BLE_RD_BLE_MAC_RET           "<rd_ble_mac=xx>" /*!< 读取成功的应答 xx:12个字节的MAC地址 */
/* 设置用户自定义的MAC地址 */
#define HJ_BLE_ST_OWN_MAC               "<ST_OWN_MAC=%s>" /*!< 设置用户自定义的MAC地址 12字节的MAC地址如"12AB34CD56EF"或"0"取消用户自定义MAC */
#define HJ_BLE_ST_OWN_MAC_RET           "<st_own_mac=ok>" /*!< 设置成功的应答 */
/* 设置/读取BLE模组工作模式 */
#define HJ_BLE_ST_WAKE                  "<ST_WAKE=%s>" /*!< 设置BLE模组工作模式 "ONCE"本次连接内全速运行 "FOREVER"一直全速运行 "NORMAL"正常唤醒工作模式 */
#define HJ_BLE_RD_WAKE                  "<RD_WAKE>"    /*!< 读取BLE模组工作模式 */
#define HJ_BLE_ST_WAKE_RET              "<st_wake=ok>" /*!< 设置成功的应答 */
#define HJ_BLE_RD_WAKE_RET              "<rd_wake=xx>" /*!< 读取成功的应答 同上小写 */

/**
 * @}
 */

/* 类型定义-------------------------------------------------------------------*/

/* 全局变量-------------------------------------------------------------------*/

/* 函数原型-------------------------------------------------------------------*/

/**
 * @}
 */

/**
 * @}
 */

#ifdef __cplusplus
}
#endif

#endif /* hongjia_ble.h */
